package StringTest;
/*
转换罗马数字
键盘录入一个字符串，
要求1:长度为小于等于9
要求2:只能是数字
将内容变成罗马数字
下面是阿拉伯数字跟罗马数字的对比关系:
Ⅰ-1、Ⅱ-2、Ⅲ-3、Ⅳ-4、Ⅴ-5、Ⅵ-6、Ⅶ-7、Ⅷ-8、Ⅸ-9、Ⅹ-10
注意点:
罗马数字里面是没有0的
如果键盘录入的数字包含0，可以变成” ”
(长度为0的字符串)
 */

import java.util.Scanner;

public class Test1 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = "";
        while (true) {
            str = sc.next();//12345
            boolean ret = fun1(str);
            if (ret) {
                break;
            } else {
                System.out.println("请重新输入");
                continue;
            }
        }
//查表法:数字跟数据产生一个对应关系
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < str.length(); i++) {
            char c = str.charAt(i);
            int num = c - '0';//数字12345
            String s=fun2(num);
            sb.append(s);

        }
        System.out.println(sb.toString());

    }

    //长度为小于等于9
    public static boolean fun1(String str) {
        if (str.length() > 9) {
            return false;
        }
        //只能是数字
        for (int i = 0; i < str.length(); i++) {
            char c = str.charAt(i);
            if (c < '0' || c > '9') {
                return false;
            }
        }
        return true;
    }

    /*将内容变成罗马数字
    下面是阿拉伯数字跟罗马数字的对比关系:
    Ⅰ-1、Ⅱ-2、Ⅲ-3、Ⅳ-4、Ⅴ-5、Ⅵ-6、Ⅶ-7、Ⅷ-8、Ⅷ-9、Ⅹ-10
     */
    //查表法
    public static String fun2(int number) {
        //定义一个数组,让索引跟罗马数字 产生一个对应关系
        String[] arr = {"" ,"Ⅰ ", "Ⅱ ", "Ⅲ ", "Ⅳ ", "Ⅴ ", "Ⅵ ", "Ⅶ ", "Ⅷ ", "Ⅷ "};
        return arr[number];
    }
}